package com.xbongbong.paas.service.dynamic.crm.strategy;

import com.xbongbong.pro.dynamic.pojo.dto.DynamicDeleteDTO;
import com.xbongbong.pro.dynamic.pojo.dto.DynamicPaymentSheetDTO;

import java.util.List;

public interface PaymentSheetDynamicStrategy {
    /**
     * 业务类型
     * @return
     */
    List<Integer> type();

    /**
     * 已核销、预收款核销
     */
    void writeOff(DynamicPaymentSheetDTO dynamicPaymentSheetDTO);

    /**
     * 预收款类型的回款单
     */
    void prepayment(DynamicPaymentSheetDTO dynamicPaymentSheetDTO);

    /**
     * 红冲已核销、红冲预收款核销、红冲预收款核销退到余额
     */
    void red(DynamicPaymentSheetDTO dynamicPaymentSheetDTO);

    /**
     * 坏账类型回款单
     */
    void bad(DynamicPaymentSheetDTO dynamicPaymentSheetDTO);

    /**
     * 删除
     * @param dynamicDeleteDTO
     */
    void batchDelete(DynamicDeleteDTO dynamicDeleteDTO);
}
